#define _CRT_SECURE_NO_WARNINGS  1  //用来消除scanf报错的代码

#include <stdio.h>

//练习：输入任意一个正整数值，计算除3之后的余数

             //int main()
             //{
             //	int num = 0; //给num初始化
             //	//输入
             //	scanf("%d", &num); //输入一个想要的num
             //	//num%3 --> 余数 0 1 2   //认识if与else语句
             //	if (num % 3 == 0)
             //		printf("余数是0\n");
             //	else if (num % 3 == 1)
             //		printf("余数是1\n");
             //	else
             //		printf("余数是2\n");
             //
             //	return 0;
             //}
 
//另一个选择语句：Switch语句            
             //int main()
             //{
             //	int num = 0;
             //	//输入
             //	scanf("%d", &num);
             //	//num%3 --> 余数 0 1 2
             //	switch (num % 3)  //判断里面的值是什么
             //	{
             //	case 0:           //假设里面的值为0，注意后面要加：表示case语句
             //		printf("余数是0\n");
             //		break;
             //	case 1:
             //		printf("余数是1\n");
             //		break;
             //	case 2:
             //		printf("余数是2\n");
             //		break;       
             //	}
             //	//
             //	return 0;
             //}

            
//输入数字1~7，则输出结果为星期几，用switch语句
             //int main()             
             //{
             //	int day = 0;
             //	scanf("%d", &day);//输入
             //	switch (day)
             //	{
             //	case 1:
             //		printf("星期1\n");
             //		break;
             //	case 2:
             //		printf("星期2\n");
             //		break;
             //	case 3:
             //		printf("星期3\n");
             //		break;
             //	case 4:
             //		printf("星期4\n");
             //		break;
             //	case 5:
             //		printf("星期5\n");
             //		break;
             //	case 6:
             //		printf("星期6\n");
             //		break;
                          //	case 7:
             //		printf("星期天\n");
             //		break;
             //	}
             //	return 0;
             //}             
             
//可以节省代码，表示输入1~5时，输出工作日；输入6~7时，输出休息日             
             //int main()
             //{
             //	int day = 0;
             //	scanf("%d", &day);//输入
             //	switch (day)
             //	{
             //	case 1:
             //	case 2:
             //	case 3:
             //	case 4:
             //	case 5:
             //		printf("工作日\n");
             //		break;
             //	case 6:
             //	case 7:
             //		printf("休息日\n");
             //		break             ;
             //	default:      //default表示输入case以外的答案是，输出的答案为什么
             //		printf("输入错误，应该输入1~7的数字\n");
             //		break;
             //	}
             //	return 0;
             //}
             //

//ctrl+c - 复制
//ctrl+v - 粘贴
//ctrl+z - 撤销
//ctrl+x - 剪切


//0表示假
//非0是真
             
             
//while循环的认识             
             //int main()
             //{
             //	if (1)
             //		printf("hehe\n");
             //
             //	while (1)     //while（1）表示循环一直持续
             //		printf("hehe\n");
             //	
             //	return 0;
             //}
             //


//while循环的常见形式
             //int main()
             //{
             //	int i = 1;
             //	while (i <= 10)
             //	{
             //		printf("%d ", i);//1 2 
             //		i++;
             //	}
             //	return 0;
             //}

//i++的不同位置的while循环
             //int main()
             //{
             //	int i = 1;
             //	while (i <= 10)
             //	{
             //		printf("%d ", i++);//1 2 
             //	}
             //	return 0;
             //}

//while循环中 ++i与i++的区别
             //int main()
             //{
             //	int i = 1;
             //	while (i <= 10)
             //	{
             //		printf("%d ", ++i);
             //	}
             //	return 0;
             //}

//while循环的例子
             //int main()
             //{
             //	int num = 0;
             //	scanf("%d", &num);//1234
             //
             //	while (num)
             //	{
             //		printf("%d ", num % 10);
             //		num = num / 10;
             //	}
             //
             //	return 0;
             //}

//再循环中输入一个值             
             //int main()
             //{
             //	int num = 0;
             //	scanf("%d", &num);//520
             //
             //	while (num)
             //	{
             //		printf("%d ", num % 10);
             //		num /= 10;
             //	}
             //
             //	return 0;
             //}

//while循环的例子
             //int main()
             //{
             //	int i = 1; //循环变量的初始化
             //
             //	while (i <= 10) //循环的判断部分
             //	{
             //		printf("%d ", i);
             //
             //		i += 2;//调整部分  //表示i = i + 2进行赋值
             //	}
             //	return 0;
             //}


//另一种循环，for循环             
             //int main()
             //{
             //	int i = 0;
             //	for (i = 1; i <= 10; i++)
             //	{
             //		printf("%d ", i);
             //	}
             //
             //	return 0;
             //}

             
//for循环例子
             //int main()
             //{
             //	int i = 0;
             //	int sum = 0;//和
             //
             //	for (i = 1; i <= 100; i++)
             //	{
//产生i,判断i是否是3的倍数
             //		if (i % 3 == 0)
             //			sum += i;
             //	}
             //	printf("sum = %d\n", sum);
             //
             //	return 0;
             //}
             

//for循环例子             
             //int main()
             //{
             //	int i = 0;
             //	int sum = 0;//和
             //
             //	for (i = 3; i <= 100; i += 3)
             //	{
             //		sum += i;
             //	}
             //	printf("sum = %d\n", sum);
             //
             //	return 0;
             //}             

//另一种循环 do ...while（条件）循环             
             //int main()
             //{
             //	int i = 1;
             //	do
             //	{
             //		printf("%d ", i);
             //		i++;
             //	} while (i<=10);
             //
             //
             //	return 0;
             //}


//do...while循环的例子
             //int main()

             //{
             //	int num = 0;
             //	int cnt = 0;//计数器
             //	scanf("%d", &num);//123
             //	do
             //	{
             //		cnt++;//
             //		num /= 10;
             //	} while (num);
             //	printf("%d\n", cnt);
             //
             //	return 0;
             //}                          


//while循环的例子
             //int main()
             //{
             //	int i = 1; 
             //
             //	while (i <= 10) //应该循环10次
             //	{
             //		if (i == 5)
             //			break;
             //		printf("%d ", i);
             //		i++;
             //	}
             //	return 0;
             //}
             //

//while循环的例子             
             //int main()
             //{
             //	int i = 1;
             //
             //	while (i <= 10) //应该循环10次
             //	{
             //		if (i == 5)
             //			continue;    //注意continue表示跳过本次循环（一次循环）
             //		printf("%d ", i);
             //		i++;
             //	}
             //	return 0;
             //}
             
             

//for循环的例子
             //int main()
             //{
             //	int i = 0;
             //	for (i = 1; i <= 10; i++)
             //	{
             //		if (i == 5)
             //			break;
             //		printf("%d ", i);
             //	}
             //
             //	return 0;
             //}


//for循环的例子
             //int main()
             //{
             //	int i = 0             ;
             //	for (i = 1; i <= 10; i++)
             //	{
             //		if (i == 5)
             //			continue;
             //		printf("%d ", i);
             //	}
             //
             //	return 0;
             //}

//for循环的变种
             //int main()
             //{
             //	int i = 0;
//	//for循环的三个部分可以省略不写，语法支持
//	//判断部分被省略，判断就恒为真，死循环
             //	for (;;)
             //	{
             //		printf("hehe\n");
             //	}
             //
             //	return 0;
             //}


//do while循环的例子             
             //int main()
             //{
             //	int i = 1;
             //	do
             //	{
             //		i++;
             //		if (i == 5)
             //			continue;
             //		printf("%d ", i);
             //	} while (i<=10);
             //	//2 3 4 6 7 8 9 10 11
             //	return 0;
             //}

//for循环的例子
//题：打印100~200之间的素数（法一）
             //int main()
             //{
             //	int i = 0;
             //	for (i = 100; i <= 200; i++)
             //	{
//判断i是否为素数
 //产生2~i-1之间的数字
             //		int j = 0;
             //		int flag = 1;//假设i是素数
             //		for (j = 2; j <= i - 1; j++)//2 3 4 5 6
             //		{
             //			if (i % j == 0)
             //			{
             //				flag = 0;//标记一下，i不是素数
             //				break;
             //			}
             //		}
             //		if (flag == 1)
             //			printf("%d ", i);
             //	}
             //	return 0;
             //}             

//题：打印100~200之间的素数（法二）
             //int main()
             //{
             //	int i = 0;
             //	for (i = 101; i <= 200; i+=2)
             //	{
//判断i是否为素数
//产生2~i-1之间的数字
             //		int j = 0;
             //		int flag = 1;//假设i是素数
             //		for (j = 2; j <= i - 1; j++)//2 3 4 5 6
             //		{
             //			if (i % j == 0)
             //			{
             //				flag = 0;//标记一下，i不是素数
             //				break;
             //			}
             //		}
             //		if (flag == 1)
             //			printf("%d ", i);
             //	}
             //	return 0;
             //}
             //

            
//题：打印100~200之间的素数（法三）            
             //int main()
             //{
             //	int i = 0;
             //	for (i = 101; i <= 200; i += 2)
             //	{
//		//判断i是否为素数
//		//产生2~i-1之间的数字
             //		int j = 0;
             //		int flag = 1;//假设i是素数
             //		for (j = 2; j <= i - 1; j++)//2 3 4 5 6
             //		{
             //			if (i % j == 0)
             //			{
             //				flag = 0;//标记一下，i不是素数
             //				break;
             //			}
             //		}
             //		if (flag == 1)
             //			printf("%d ", i);
             //	}
             //	return 0;
             //}
             //


//sqrt 是库函数，计算开平方
             #include <math.h>

             //int main()
             //{
             //	int i = 0;
             //	for (i = 101; i <= 200; i += 2)
             //	{
             //		//判断i是否为素数
//产生2~i-1之间的数字
             //		int j = 0;
             //		int flag = 1;//假设i是素数
             //		for (j = 2; j <= sqrt(i); j++)//2 3 4 5 6
             //		{
             //			if (i % j == 0)
             //			{
             //				flag = 0;//标记一下，i不是素数
             //				break;
             //			}
             //		}
             //		if (flag == 1)
             //			printf("%d ", i);
             //	}
             //	return 0;
             //}



//题：打印100~200之间的素数（法四）
             int main()
             {
	             int i = 0;
	             for (i = 101; i <= 200; i += 2)
	             {
		//判断i是否为素数
		//产生2~i-1之间的数字
		             int j = 0;
		             int flag = 1;//假设i是素数
		             for (j = 2; j*j <= i; j++)//2 3 4 5 6
		             {
			             if (i % j == 0)
			             {
				             flag = 0;//标记一下，i不是素数
				             break;
			             }
		             }
		             if (flag == 1)
			             printf("%d ", i);
	             }
	             return 0;
             }



